This invention relates to a method and apparatus for controlling the flow of fiber channel (FC) data frames from a fiber channel link to a metropolitan area link of lesser bandwidth (a synchronous optical network (SONET)).
A standard protocol for the exchange and flow of data (frames) over a fiber channel (FC) link is provided by the FiberChannel Physical and Signalling Interface (FC-PH) (see Information Technologyxe2x80x94Fibre Channelxe2x80x94Physical and Signalling Interface (FC-PH), ANSI X3.230-1994) directed to a fixed rate point-to-point serial data link. However, this protocol uses a one-to-one credit based flow control mechanism (i.e. the R_RDY primitive which is generated upon the release of a frame from an interface buffer and is required to be received by the client device before it can transmit a further frame) which assumes a nominal data rate over the entire area of control. However, its use across a metropolitan area link having a data rate which is less than the nominal FC-PH data rate results in delay and frame loss and such frame loss and delay resulting from the bandwidth disparity is unsatisfactory for many applications. For example, if a storage area network interconnection (e.g. used by Storage Application Service Providers to sell data storage as a service rather than as an equipment purchase) were to be run under a FC-PH protocol it would experience failures and/or performance degradation when the server overrun""s the input buffers of the FC access device (i.e. the interface between the server/FC link and the metro area link/storage device).
An existing means of avoiding such failure and degradation is to use a transparent Metro Area Network Link based upon optical repeaters with bandwidth equal to the rate of the fiber channel point-to-point link. However, this is an expensive solution because the cost of metro area bandwidth is high. Also, because such transparent links typically do not provide a local flow control mechanism, the FC-PH flow control mechanism (i.e. the R_RDY primitive) suffers from long propagation delay (referred to as xe2x80x9ctime of flightxe2x80x9d) as the primitives traverse the metro area and this causes a degradation of throughput.
There is a need, therefore, for effective means to control the flow of data from a fiber channel link to a metro area transport link without loss of frames or delay such that a network operator (e.g. service provider) is able to provide fiber channel services over lower bandwidth (and hence lower cost) metro area links. Further, there is a need for means to enable a network operator to set (or xe2x80x9ctunexe2x80x9d) the parameters which control the flow of data at the entry to the metro area network so as to permit the operator to tailor the data flow to the particular needs of the application/service (and thereby allow the operator to make an application specific trade-off between latency and throughput).
In accordance with the present invention there is provided a data flow control method and apparatus for controlling the rate of transport of data units from a first data channel to a second data channel of lower bandwidth than the first channel. The release of each data unit by a data source for transport onto the first channel is governed by a credit-based protocol whereby one data unit is released upon the provision of one credit unit. A buffer of size N is located intermediate the first and second data channels for holding data units transported from the first channel. A first marker identifies a high limit H of the buffer at which a first condition occurs, H being less than N and the first condition applying when the number of data units in the buffer reaches H. A second marker identifies a low limit L of the buffer at which a second condition occurs, L being less than H and the second condition applying when the number of data units in the buffer reaches L. A credit unit owed counter O counts the number of credit units which become owed to the data source when the second condition applies. A third marker Max identifies a maximum number of credit units that may be provided to the data source when the first condition applies and the value of the credit unit counter is greater than zero. A controller, which is preferably a state machine, controls the markers and counter and the provision of credit units to the source according to the following algorithms. When the first condition applies and the O counter is zero one credit unit is provided to the data source upon the release of each data unit for transport onto the second channel. When the second condition applies the provision of credit units to the source is halted and the O counter is incremented upon the release of each data unit for transport onto the second channel. When the first condition applies and the O counter is greater than zero up to Max credit units are provided to the data source upon the release of each data unit for transport onto the second channel.
Preferably the values H, L and Max are user-selectable. The first data channel may be a fiber channel point-to-point serial link, the second data channel a SONET metropolitan area link, the credit unit a R_RDY primitive of the FC-PH protocol and the data units payload data frames. The data source may be a client device, such as a server, connected to the fiber channel link. In the preferred embodiment the buffer is a FIFO RAM.